﻿import Vuex from 'vuex'
import Vue from 'vue'

import countOptions from './count'
import PersonOptions from './person'

Vue.use(Vuex)
/* 
//求和功能相关的配置
const countOptions = {
    namespaced: true,
    actions:{
        jia(context,value){
            context.mutations('JIA',value)
        },
        jian(context,value){
            context.mutations('JIAN',value)
        },
    },
    mutations:{
        JIA(state,value){
            state.sum += value
        },
        JIAN(state,value){
            state.sum -= value
        },
    },
    state:{
        sum:0,
        school:'bilibili',
        subject: 'Vue',
    },
    getters:{
        //给你要实现运算的值取一个名字
        bigSum(state){ //能接收到state的值
            return state.sum*10//跟计算属性类似:靠返回值来决定自己的值
        }
    },
} 
//人员管理功能相关的配置
const PersonOptions = {
    namespaced: true,
    actions:{
        addPersonWang(context,value){
            if(value.name.indexOf('王') === 0){
                context.commit('ADD_PERSON',value)
            }else{
                alert('添加的人必须姓王')
            }
        }
    },
    mutations:{
        ADD_PERSON(state,value){
            state.personList.unshift(value)
        }
    },
    state:{
        personList:[
            {id:'001',name:'张三'}
        ]
    },
    getters:{
        fristPersonName(state){//这个state拿到的只是自己的state,不是全部的state
            return state.personList[0].name
        }
    },
} */
/*
const countOptions = {
    actions:{},
    mutations:{},
    state:{},
    getters:{},
}
*/


//使用配置

export default new Vuex.Store({
    modules:{//模块的复数
        //这么写的含义就是Store里面所保存的东西都开始分类了
        a:countOptions,
        b:PersonOptions
    }
})